type类型别名

5/21/2024 ts

# 1.type 类型别名 【掌握】

作用:为了简化 联合类型的定义 给某个类型改名字

作用:顶替 interface 定义对象的类型

  • 面试题: type 和interface 异同? 【背】

答: interface 和 type 都可以 给 对象或函数 定义类型, interface 支持多个相同类型名的类型自动合并,type不支持相同类型的合并, type 可以给 复杂的类型 取别名,方便以后多次使用,简化代码, interface 不支持去别名

# 1.给类型取别名

type UserList = Array<User|Account>;

let userList:UserList =[
    {name:'xxx',age:44},
    {account:'xxxxx',password:'xxxxxx'},
]
1
2
3
4
5
6

# 2.顶替interface 定义对象类型

interface User{
    name:string,
    age:number
}
let user:User = {name:'xxx',age:444};
1
2
3
4
5
type User ={
    name:string,
    age:number
}
let user:User = {name:'xxx',age:444};
1
2
3
4
5

# 3.interface 可以进行类型的自动合并 type不行

interface User{
    name:string,
    age:number
}
interface User{
	like:Array<string>
}
let user:User = {name:'xx',age:40,like:['x','xxx','xxx']}
1
2
3
4
5
6
7
8
type User={
    name:string,
    age:number
}
type User={   //报错 相同别名的类型冲突
	like:Array<string>
}
let user:User = {name:'xx',age:40,like:['x','xxx','xxx']}

1
2
3
4
5
6
7
8
9